from faker import Faker
import time
faker1 = Faker(locale="zh_cn")
# 1、编写一个学生方法，产生一堆学生对象（姓名），传入形参控制学生生成数量

# def student_into(num):
#     count = 0
#     while count < num:
#         print(f"学生姓名为：{faker1.name()}")
#         count += 1
#
# student_into(5)

# 2、创建一个方法，用来生成普通人必备的信息：姓名、年龄、住址、身份证号、手机号，随机生成20个写入personinfo.txt里
# 格式：姓名：xxx  年龄：xxx 住址：xxx 身份证号：xxx

# def random_id():
#
#     for i in range(20):
#         name = faker1.name()
#         age = faker1.random_int(min = 20,max = 40)
#         address = faker1.address()
#         id = faker1.ssn(min_age=20, max_age=40)
#         phone_number = faker1.phone_number()
#         str_mess = f"名字：{name} 年龄：{age} 住址：{address} 身份证号：{id} 手机号：{phone_number}\n"
#         with open("personinfo.txt","a",encoding="utf-8") as f:
#             f.writelines(str_mess)
# random_id()


# 3、文本 student.txt中包含下面的内容
# zhangshan:30
# lisi:50
# wangwu:60
# lifei:70
# 期望能够统计出其中的内容，以dict的形式保存，例如： {"zhangshan":30,"lisi":50,"wangwu":60,"lifei":70}

# with open("student.txt","r",encoding="utf-8") as f:
#     list_tj = f.readlines()
# dict_tj = {}
# list_tj1 = []
# str_tj = ""
# # print(list_tj)
# for i in list_tj:
#     str_tj = i.replace("\n","")
#     list_tj1 = str_tj.split(":")
#     dict_tj[list_tj1[0]] = int(list_tj1[1])
# print(dict_tj)


# 4、给你一个 非空 整数数组 nums ，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素

# def find_(nums):
#     dict_ = {}
#     for i in nums:
#         if i not in dict_:
#             dict_[i] = 1
#         else:
#             dict_[i] += 1
#     for k,v in dict_.items():
#         if v == 1:
#             return k
#     # print(dict_)
#
# print(find_([1,1,2,3,3,2,4,5,5,4,6]))


# 5、输入：["1","a","b","3","5","8","_"] 想要提取里面得数字，并保存到一个列表中

# def draw_(para:list):
#     list_ = []
#     for i in para:
#         if i in "1234567890":
#             list_.append(i)
#     return list_
#
#
# print(draw_(["1", "a", "b", "3", "5", "8", "_"]))



# 6、写函数,函数接收的4个参数分别是:姓名,性别(默认为男),年龄,地址
# 用户通过input输入这4个内容(支持持续输入,Q或q退出),并传递给函数，函数接收到这些内容,将其追加到student_msg文件中

# def message(name,age,address,sex="男"):
#     str_ = f"姓名：{name},年龄：{age},地址：{address},性别：{sex}\n"
#     with open("student_msg.txt","a",encoding="utf-8") as f:
#         f.writelines(str_)
#
# while True:
#     print("输入信息，Q或者q退出")
#     key = input("请输入除q或Q外的任意一个字母（Q或者q会退出哦）：")
#     if key != "Q" and key != "q":
#         name = input("请输入姓名：")
#         age = input("请输入年龄：")
#         address = input("请输入地址：")
#         sex = input("请输入性别：")
#         if sex == "男":
#             message(name, age, address)
#         else:
#             sex = "女"
#         message(name,age,address,sex)
#         print("添加成功！")
#     else:
#         print("感谢您的使用！")
#         break


# 7、打印功能菜单、添加学生信息、删除学生信息、修改学生信息、显示学生信息、退出系统，并且需要接收用户的输入，在根据输入内容调用相应函数实现相应功能（存入文件），模板图如下。每次对学生管理系统发生改动，要写入改动点到log.txt文本中

"""dict_ = {}

def add_msg():
    # global list_3
    # list_3 = []
    # with open("log.txt","r",encoding="utf-8") as f:
    #     list_ = f.readlines()
    #     print(list_)
    #     list_2 = []
    # for i in list_:
    #     str_1 = i.replace("{","")
    #     str_2 = str_1.replace("}","")
    #     list_1 = str_2.split(":")
    #     str_2 = ""
    #     str_1 = ""
    #     for j in list_1:
    #         list_2.append(j)
    # for i in list_2:
    #     list_3.append(i.replace("'",""))
    # print(f"这是那个列表{list_3}")
    name = input("请输入姓名：")
    if name not in dict_.keys():
        sex = input("请输入性别：")
        age = input("请输入年龄：")
        address = input("请输入地址：")
        dict_[name] = {"性别":sex,"年龄":age,"地址":address}
        # str_1 = f"{dict_}\n"
        with open("log.txt","a",encoding="utf-8") as f:
            f.write(f"在时间戳为{time.time()}时添加{name}的{dict_[name]}信息成功\n")
        print(dict_)
    else:
        print(f"您输入的姓名{name}已存在！")

def del_msg():
    name = input("请输入要删除的学生信息：")
    if name in dict_:
        dict_.pop(name)
        print(f"您已经成功删除{name}的信息{dict_[name]}")
        with open("log.txt","a",encoding="utf-8") as f:
            f.write(f"在时间戳{time.time()}时，删除{name}的{dict_[name]}信息")
    else:
        print("您要删除的信息不存在！！！")

def mdf_msg():
    name = input("请输入你准备修改谁的信息：")
    if name in dict_.keys():
        age_new = input("请输入新年龄：")
        address_new = input("请输入新地址：")
        sex_new = input("请输入性别：")
        dict_[name] = {"性别":sex_new,"年龄":age_new,"地址":address_new}
        print(f"您已成功修改{name},的信息为{dict_[name]}")
        with open("log.txt","a",encoding="utf-8") as f:
            f.write(f"在时间戳{time.time()}下，修改{name}的信息为{dict_[name]}")
    else:
        print(f"您输入的名字{name}不存在！！！！")

def display():
    for k,v in dict_.items():
        print(f"{k}的信息为{v}")



while True:
    print("欢迎来到学生管理系统！")
    print("1.添加学生信息","2.删除学生信息","3.修改学生信息","4.显示学生信息","5.退出系统",sep = "\n")
    key = input("请输入您要使用的功能对应的序号：")
    if key == "1":
        add_msg()
    elif key == "2":
        del_msg()
    elif key == "3":
        mdf_msg()
    elif key == "4":
        display()
    elif key == "5":
        print("感谢您的使用！")
        break
    else:
        print("您输入的序号有误，请重新输入！")"""

# 8、如今的社交软件层出不穷，虽然功能千变万化，但都具有好友管理系统的基本功能，包括添加好友、删除好友、备注好友、展示好友等。下面是一个简单的好友管理系统的功能菜单（存入文件）
# 好友管理系统中有5个功能，每个功能都对应一个序号，用户可根据提示“请输入您的选项”选择序号执行相应的操作，包括：
# 添加好友：用户根据提示“请输入要添加的好友：”输入要添加好友的姓名，添加后会提示“好友添加成功”。
# 删除好友：用户根据提示“请输入删除好友姓名：”输入要删除好友的姓名，删除后提示“删除成功”
# 备注好友：用户根据提示“请输入要修改的好友姓名：”和“请输入修改后的好友姓名：”分别输入修改前和修改后的好友姓名，修改后会提示“备注成功”。
# 展示好友：若用户还没有添加过好友，提示“好友列表为空”，否则返回每个好友的姓名。
# 退出：关闭好友管理系统。
# 本任务要求编写程序，模拟实现如上所述的好友管理系统。
# 文件读取要使用相对路径，确保在任何的电脑、终端都可以运行

list_ = []
while True:
    print("欢迎来到好友管理系统！")
    print("功能菜单","1.添加好友","2.删除好友","3.备注好友","4.展示好友",sep = "\n")
    key = input("请输入功能对应的序号：")
    if key == "1":
        name = input("请输入你要添加的好友姓名：")
        if name not in list_:
            list_.append(name)
            print(f"添加好友{name}成功")
            with open("ti_8.txt", "a", encoding="utf-8") as f:
                f.write(f"好友为{name}\n")
        else:
            print(f"你要添加的好友{name}已存在")
    elif key == "2":
        name = input("请输入要删除的好友姓名：")
        if name in list_:
            list_.remove(name)
            print(f"删除好友{name}成功")
        else:
            print("删除的好友不存在！！！")
    elif key == "3":
        name_old = input("请输入修改前的好友名字：")
        if name_old in list_:
            name_new = input("请输入修改后的好友名字：")
            x = list_.index(name_old)
            list_[x] = name_new
            print(f"备注好友为{name_new}成功")
        else:
            print("您要备注的好友不存在！！！")
    elif key == "4":
        if len(list_) == 0:
            print("好友列表为空")
        for i in list_:
            print(f"好友是：{i}")
    elif key == "5":
        print("感谢您的使用！！！")
        break
    else:
        print("您输入的序号有误，请重新输入！")
